package day0327;

import java.util.Arrays;

public class Test1 {
    public static void main(String[] args) {
        int[] ar=new int[8];//定义一个空数组，将数组的地址传入到getNum()方法的arr参数中。
        int rs=getNum(ar, 7);
        //打印ar数组中存储的数列中的前8个数(ar变量指向了容量为8的数组，ar传入到getNum的arr参数中，则arr参数也指向了此数组)
        //用getNum的arr给数组中存入8个数， 是可以用main方法的ar变量获取数组的这8个数(原因是ar和arr都可以操作此数组)
        System.out.println(Arrays.toString(ar));
    }

    /**
     * @param arr 用来接收main方法ar数组
     * @param index 用来接收main方法的参数7
     * @return 返回数列中第index个数
     */
    public static int  getNum(int[]arr,  int index){
        //如果获取的是 {2,4,8,16,32,64,128,256...} 数列中的第0个数就返回2
        if(index==0){
            //如果当前需要计算数列的第index(0)个数，就给数组中的第0位放入2
            return arr[0]=2;
        }else{
            //如果当前需要计算数列中的第index个数，则将getNum(index-1)*2计算的第index个元素存入到数组的第index个位置
            return arr[index]=getNum(arr,index-1)*2;
        }
    }
}
